package com.wyp.design.principle.openclose;

/**
 * @author: yipeng.wang01@hand-china.com-25490
 * @TIME: 2019/12/25/9:31
 **/
public class DiscountJavaCourse extends JavaCourse {

    public DiscountJavaCourse(String name, String id, Double price) {
        super(name, id, price);
    }

    /**
     * 重写父类的获取价格方法，使用时可以使用父类变量指向子类引用方式调用
     *
     * @return
     */
    @Override
    public double getPrice() {
        return super.getPrice();
    }

    //    /**
//     * 返回原价 父类中特有方法，但是相对于接口属于子类，如果使用 ICourse course = new DiscountJavaCourse("java", "12345566", 1234.0);
//     * 则需要先向下转型，然后调用该类中独有方法,该类相对于DiscountJavaCourse属于父类.
//     *
//     * @return
//     */
//    public double originalPrice() {
//        return super.getPrice();
//    }


    /**
     * 里氏替换原则，要求继承中不会改变父类原有方法，所以在继承过来获取原价方法不应该做修改，而子类可以拥有自己的方法
     *
     * @return
     */
    public double discountPrice() {
        return getPrice() * 0.8;
    }

}
